#ifndef __XMLPARSE_H__
#define __XMLPARSE_H__

#include "common.h"
#include <string>
#include <cstring>
#include <libxml2/libxml/parser.h>
#include <libxml2/libxml/tree.h>
#include <iconv.h>


class qXmlParse
{
public:
	qXmlParse();
	~qXmlParse();

	char* convChar(char* in, const char* fromEncode, const char* toEncode);

	bool initFile(const std::string& filename);
	xmlNodePtr getRootNode();
	xmlNodePtr getChildNode(xmlNodePtr node, const char* nodename);
	xmlNodePtr getNextNode(xmlNodePtr node, const char* nodename);

	bool getNodePropNum(xmlNodePtr node, const char* propname, void* dstname, size_t dstsize);
	bool getNodePropStr(xmlNodePtr node, const char* propname, std::string& str);

private:
	xmlDocPtr doc_;

};

#endif
